package com.hyz.controller.assetManager;

import com.hyz.pojo.assetManager.AssetInboundRequest;
import com.hyz.pojo.assetManager.AssetInboundStatusResponse;
import com.hyz.service.assetManager.AssetManagerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import pojo.ResponseResult;
import pojo.asset.Asset;
import pojo.reposiroty.Repository;

import java.util.List;

/**
 * @author HGD
 * @date 2022/9/29 21:33
 */
@RestController
@RequestMapping("/assetManager")
public class AssetManagerController {
    @Autowired
    private AssetManagerService assetManagerService;

    // TODO: 创建批量上传

    //----------------------------资产分库-----------------------------

    /*
     * 1. 先找到为分库的资产
     * 2. 找到所有可以存储的仓库
     * 3. 将资产分库
     * 4. 查看分库进度
     * */

    /**
     * 获取所有未返库的资产
     *
     * @return 未返库的资产
     */
    @PostMapping("/getAllUnassignedAssets")
    public ResponseResult<List<Asset>> getAllUnassignedAssets() {
        return assetManagerService.getAllUnassignedAssets();
    }

    /**
     * 查看所有的仓库信息
     *
     * @return 仓库信息
     */
    @PostMapping("/getAllRepositories")
    public ResponseResult<List<Repository>> getAllRepositories() {
        return assetManagerService.getAllRepositories();
    }

    /**
     * 创建资产分库
     *
     * @param request 资产分库信息
     * @return 是否分库成功
     */
    @PostMapping("/createAssetInbound")
    public ResponseResult<String> createAssetInbound(@RequestBody AssetInboundRequest request) {
        return assetManagerService.createAssetInbound(request);
    }

    /**
     * 查看分库情况
     *
     * @return 分库情况
     */
    @PostMapping("/getAssetInboundStatus")
    public ResponseResult<List<AssetInboundStatusResponse>> getAssetInboundStatus() {
        return new ResponseResult<>(200, "调用成功", assetManagerService.getAssetInboundStatus());
    }

    //----------------------------借用申请-----------------------------

    // TODO: 查看借用申请

    // TODO: 审批借用申请

    //----------------------------调用申请----------------------------

    // TODO: 查看调用申请

    // TODO: 审批调用申请

    //----------------------------资产归还------------------------------

    // TODO: 查看资产归还申请

    // TODO: 审批资产归还申请

    //------------------------资产维修/维保管理--------------------------

    // TODO: 查看维修申请

    // TODO: 查看资产相关信息

    // TODO: 创建资产维修申请

    // TODO: 查看资产维修申请

    //-----------------------------资产报废----------------------------

    // TODO: 查看资产报废申请

    // TODO: 审批资产报废申请

    //-----------------------------资产盘点-----------------------------

    // TODO: 资产盘点
}
